//
// Created by zuo on 2024/7/7.
// 题目链接 https://www.lanqiao.cn/problems/1371/learning/?page=1&first_category_id=1&problem_id=1371
// 题目链接 https://www.lanqiao.cn/problems/1372/learning/?page=1&first_category_id=1&problem_id=1372
// 题目链接 https://www.lanqiao.cn/problems/1621/learning/?page=1&first_category_id=1&problem_id=1621
//


#include<bits/stdc++.h>
using namespace std;
using ll = long long;
const int N = 1e6 + 7;
char s[N];
int a[N];

int main()
{
    // // 1371  碰撞指针
    // cin >> s;
    // int flag = 1;
    // int l = 0, r = strlen(s) - 1;
    // while (l < r)
    // {
    //     if (s[l] == s[r])
    //     {
    //         l++;
    //         r--;
    //     }
    //     else
    //     {
    //         cout << 'N';
    //         flag = 0;
    //         break;
    //     }
    // }
    // if (flag) cout << 'Y';

    // // 1372  快慢指针
    // int n, S;
    // cin >> n >> S;
    // for (int i = 0; i < n; i++)
    // {
    //     cin >> a[i];
    // }
    // int ans = n + 1;
    // // i 左指针   j 右指针
    // for (int i = 0, j = -1, sum = 0; i < n; i++)
    // {
    //     // j + 1 < n  j还能右移  注意是 while 找到区间在往下进行
    //     while (j < i || (j + 1 < n && sum < S)) sum += a[++j];
    //     if (sum >= S) ans = min(ans, j - i + 1);
    //     sum -= a[i];
    // }
    // cout << (ans > n ? 0 : ans) << '\n';

    // 1621 快慢指针
    int n, m, k;
    cin >> n >> m >> k;
    for (int i = 0; i < n; i++)
    {
        cin >> a[i];
    }
    int ans = 0;
    for (int i = 0, j = -1, cnt = 0; i < n; i++)
    {
        // j 右移  (j + 1 < n && cnt < k) 可以右移且满足条件才右移
        while (j < i || (j + 1 < n && cnt < k)) cnt += (a[++j] >= m);
        if (cnt >= k) ans += n - j;
        cnt -= (a[i] >= m);
    }
    cout << ans << endl;

    return 0;
}
